{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "        <style>\n",
       "        .output_wrapper, .output {\n",
       "            height:auto !important;\n",
       "            max-height:100000px;\n",
       "        }\n",
       "        .output_scroll {\n",
       "            box-shadow:none !important;\n",
       "            webkit-box-shadow:none !important;\n",
       "        }\n",
       "        </style>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import sys\n",
    "sys.path.insert(0,'..') # allow us to format the book\n",
    "\n",
    "# use same formatting as rest of book so that the plots are\n",
    "# consistant with that look and feel.\n",
    "import book_format\n",
    "book_format.set_style()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook creates the animations for the Multivariate Kalman Filter chapter. It is not really intended to be a readable part of the book, but of course you are free to look at the source code, and even modify it. However, if you are interested in running your own animations, I'll point you to the examples subdirectory of the book, which contains a number of python scripts that you can run and modify from an IDE or the command line. This module saves the animations to GIF files, which is quite slow and not very interactive. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import filterpy.stats as stats\n",
    "import numpy as np\n",
    "from matplotlib.patches import Ellipse\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import cm\n",
    "from mpl_toolkits.mplot3d import Axes3D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 900x400 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from kf_book.gif_animate import animate\n",
    "\n",
    "def ellipse_animate(frame):\n",
    "    \n",
    "    plt.cla()\n",
    "    cov = frame/15.\n",
    "    P = np.array([[2,cov],[cov,2]])\n",
    "    stats.plot_covariance_ellipse((2,7), cov=P, facecolor='g', alpha=0.2, \n",
    "                              title='|2.0 {:.1f}|\\n|{:.1f} 2.0|'.format(cov, cov))\n",
    "fig = plt.figure()\n",
    "animate('multivariate_ellipse.gif', ellipse_animate, 30, 125, figsize=(4, 4))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src='multivariate_ellipse.gif'>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 550x550 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "from matplotlib.patches import Ellipse\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import cm\n",
    "from mpl_toolkits.mplot3d import Axes3D\n",
    "from kf_book.gif_animate import animate\n",
    "import numpy.random as random\n",
    "from kf_book.DogSimulation import DogSimulation\n",
    "import filterpy.stats\n",
    "from filterpy.common import Q_discrete_white_noise\n",
    "from filterpy.kalman import KalmanFilter\n",
    "\n",
    "def dog_tracking_filter(R, Q=0, cov=1.):\n",
    "    dog_filter = KalmanFilter(dim_x=2, dim_z=1)\n",
    "    dog_filter.x = np.array([0, 0])   # initial state (location and velocity)\n",
    "    dog_filter.F = np.array([[1.,1],\n",
    "                             [0,1]])  # state transition matrix\n",
    "    dog_filter.H = np.array([[1.,0]])  # Measurement function\n",
    "    dog_filter.R *= R                 # measurement uncertainty\n",
    "    dog_filter.P *= cov               # covariance matrix \n",
    "    if np.isscalar(Q):\n",
    "        dog_filter.Q = Q_discrete_white_noise(2, var=Q)\n",
    "    else:\n",
    "        dog_filter.Q = Q\n",
    "    return dog_filter\n",
    "\n",
    "R = 5.\n",
    "Q = .01\n",
    "noise = 2.\n",
    "P = 20.\n",
    "dog = DogSimulation(measurement_var=R, process_var=Q)\n",
    "f = dog_tracking_filter(R=R, Q=Q, cov=P)\n",
    "random.seed(200)\n",
    "zs = []\n",
    "xs = []\n",
    "def animate_track(frame):\n",
    "    if frame > 30: return\n",
    "    \n",
    "    if frame == 0:\n",
    "        stats.plot_covariance_ellipse((0, f.x[0]), cov=f.P, axis_equal=True, \n",
    "                                      facecolor='g', edgecolor=None, alpha=0.2)\n",
    "        xs.append(f.x[0])\n",
    "        \n",
    "    z = dog.move_and_sense()[1]\n",
    "\n",
    "    zs.append(z)\n",
    "    f.update(z)\n",
    "    xs.append(f.x[0])\n",
    "    \n",
    "    stats.plot_covariance_ellipse((frame+1, f.x[0]), cov=f.P, axis_equal=True, \n",
    "                                   facecolor='g', edgecolor=None, alpha=0.5,\n",
    "                                   xlim=(-5,40), ylim=(-5,40))\n",
    "    \n",
    "    plt.plot(zs, color='r', linestyle='dashed')\n",
    "    plt.plot(xs, color='b')\n",
    "    f.predict()\n",
    "\n",
    "animate('multivariate_track1.gif', animate_track, 37, 200, figsize=(5.5, 5.5))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src='multivariate_track1.gif'>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
